/*
 * FileHandler.h

 *
 */

#ifndef FILEHANDLER_H_
#define FILEHANDLER_H_
//#include "index/IStrutureBTreeImpl.h"
#include "IndexadorTwit.h"
#include "IndexadorRss.h"
#include "../hash/HashExtensible.h"
#include "../hash/HashExtensibleRss.h"
#include "IStructureBTreeSecondaryIndexImpl.h"
/**
 * Clase para obtener los manejadores de archivos para las estructuras logicas
 */
class FileHandler {
public:
	void close();
	virtual ~FileHandler();
	IndexadorTwit* getIndexadorTwit();
	IndexadorRss* getIndexadorRss();
	HashExtensible* getHash();
	HashExtensibleRss* getHashRss();

	FileHandler();

	IStrutureBTreeImpl* getTituloIdRss();

	IStrutureBTreeImpl* getAutorIdTwit();

	IStrutureBTreeImpl* getFechaAscIdRss();

	IStrutureBTreeImpl* getFechaAscIdTwit();

	IStrutureBTreeImpl* getFechaDesIdTwit();

	IStrutureBTreeImpl* getFechaDesRss();

private:
	void init();
	IndexadorRss* indexadorRss;
	IndexadorTwit* indexadorTwit;

	HashExtensible* hash;
	HashExtensibleRss* hashRss;

	IStrutureBTreeImpl* iTituloIDRss;
	IStrutureBTreeImpl* iFechaAscIDRss;
	IStrutureBTreeImpl* iFechaDesRss;

	IStrutureBTreeImpl* iAutorIDTwit;
	IStrutureBTreeImpl* iFechaAscIDTwit;
	IStrutureBTreeImpl* iFechaDesIDTwit;

};

#endif /* FILEHANDLER_H_ */
